#!/bin/bash
#函数
#系统函数，主要介绍两个
#basename 获取文件名   
basename /home/syg/shellCode/a.txt
#dirname 返回完整路径最前面部分
dirname /home/syg/shellCode/a.txt

#自定义函数
#计算两个数的和
function getSum(){
    #local 定义局部变量，只在函数内部有效
    #shell中没有栈空间这个概念，local只是为了限制作用域，防止污染全局变量的使用
    #$1 $2 等参数，代表调用函数时传递的参数，不是执行脚本时传入的全局参数而且索引从1开始
    local num1=$1  # 使用第一个参数
    local num2=$2  # 使用第二个参数
    local SUM=$((num1 + num2))
    echo "$SUM"  #模拟返回值，通过命令替换 $(function_name)捕获输出
    echo "我是getSum函数的echo输出测试调用" #在函数中多次echo输出，会导致输出结果被一行一行输出，因为函数执行时会将输出重定向到一个临时文件中，最后再将临时文件的内容输出到控制台
    return 1  #只能返回0~255,是退出状态码，通过$?获取，一般0表示成功，非0表示失败
}


#read读取控制台输入
#-t 数字(最多阻塞几秒)  -p(输出提示信息)
read -t 4 -p "请在4秒内输入两个值(空格隔开)：" N1 N2
echo "用户输入两个值为 $N1 $N2 " 


#调用函数并传递参数
result=$(getSum $N1 $N2) #如果函数不需要形参，也没有返回值，直接写函数名就可调用
status=$?        # 立即保存状态码   $?,用于保存最近执行的前台命令的退出状态​
echo "两数之和为: $result"
echo "函数执行状态为：$status" 